Method and apparatus for encrypting and decrypting messages based on boolean matrices

ABSTRACT

This invention provides a method and an apparatus for executing improved Boolean matrices based encryption and decryption. In a data communication system, a server generates a series of encrypted data message blocks C 1 , C 2 , . . , C m  from plain data blocks P 1 , P 2 , . . . , P m , by computing C i =K(P i +K* i VT)K i . A client receives the encrypted data and generates a series of plain data message blocks P 1 , P 2 , . . . , P n ; by computing P i =K −1 C i K* i +K* i VT.

DETAILED DESCRIPTION OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to cryptographic techniques for processing secure data communications, and in particular to a method and an apparatus for encrypting and decrypting data based on Boolean matrices.

[0003] 2. Description of the Related Art

[0004] A software re-configurable radio system or software defined radio (SDR) is based on downloading of all the relevant software via a public channel, and accordingly the security issue of the downloading is one of the key issues.

[0005] One of the most pressing issues for the commercial introduction of software defined radio (SDR) systems is the authentication and verification of integrity of the software that is downloaded. Currently, any wireless device or system is required to obtain approval that it conforms to the regulations regarding frequency band, power output, modulation method and so on from appropriate governmental authorities before being manufactured and sold as a commercial device.

[0006] However for a SDR terminal, since re-programmable hardware is used, if the software is illegally modified from when it was submitted to the authorities, or indeed has never been approved. Then the use of that software may cause the wireless device to emit radiation illegally, which may cause interference to other users or even physical harm to the user of the wireless device.

[0007] Therefore, there must be a method of ensuring that the software downloaded is intact and has not been modified (verification of integrity) and that it has obtained government approval (authentication). Most likely it will also be preferable for the government to know how many of which types of software are presently being distributed.

[0008] Furthermore, in the event that some illegally modified software is created, there should be some mechanism to prevent the spread of that illegal software.

[0009] The current commercial state of the art for downloading of programs to mobile wireless terminals includes the download to mobile terminals in the form of relatively small programs.

[0010] The majority of these programs are entertainment oriented. The feature of these programs is that they do not interfere with the actual physical parameters of the radio wave emitting device.

[0011] A software defined radio terminal does intend to modify the physical radio parameters of the device and therefore the issues involved are much more serious.

[0012] The size of the file will be much larger, for example the bit file size for a field programmable gate array (FPGA) of one million gates is approximately 766 k-bytes. The complexity and therefore the knowledge which goes into each file will be much larger than current software and therefore worth more to protect this intellectual property.

[0013] As a further necessity for the introduction of a software downloadable SDR system, the software should be protected against theft by people or companies who would like to know the details of the software employed by a rival company.

[0014] The security issue in software downloading as well as in data transactions includes the following four areas:

[0015] Privacy: No one can see the transferred content—implies employment of encryption techniques.

[0016] Integrity/Authenticity: No one can tamper with the content transfer—implies employment of the cryptographic techniques for message integrity/authenticity control.

[0017] Authentication: Both parties in a transaction are really who they say they are—implies employment of techniques for the entities authentication which include a simple password techniques and more sophisticated cryptographic techniques.

[0018] Non-repudiation: A user or provider can not deny theirs actions—implies employment digital signature schemes and appropriate protocols.

[0019]FIG. 1 shows a table summarizing the comparison data for showing main differences between a SDR secure downloading and a usual Internet downloading.

[0020] The table contains fields of (1) main security requests, (2) Involved parties, (3) required cryptographic techniques, (4) dedicated security requests.

[0021] As Shown in the table, SDR downloading is required the higher security procedures than the usual internet downloading.

[0022] As described above, Software download is a key operation for software defined radio (SDR). The process of software download enables the introduction of new functionality (defined in software) into the terminal, with the aim of modifying its configuration and/or content.

[0023] Downloading of all the relevant software is performed via a public channel, and accordingly the security issue of the downloading is one of the key issues.

[0024] The security issue includes a request for employment of the encryption techniques, as well.

[0025] Recently a fast encryption technique for multimedia, FEA-M, has been proposed in “X. Yi, C. H. Tan, C. K. Siew and M. R. Syed, “Fast encryption for multimedia”, IEEE Transactions on Consumer Electronics, vol. 47, pp. 101-107, February 2001”. It is based on an interesting approach for employment of the Boolean matrices.

[0026] A very undesirable characteristics of FEA-M recently discussed in the following articles.

[0027] “M. J. Mihaljevic and R. Kohno, “Cryptographic Evaluation of a Fast Encryption for Multimedia”, SONY Research Forum—SRF2001, Tokyo, Japan, December 2001, Proceedings, 6 pages, in print”.

[0028] “M. J. Mihaljevic and R. Kohno, “On wireless communications privacy and security evaluation of encryption techniques”, IEEE Wireless Comm. And Networking Conf.—WCNC2002, Orlando, Fla., USA, March 2002, Proceedings, 4 pages, in print”

[0029] The above articles disclose that its effective secret key size is much smaller than the nominal one, and that it is inappropriate for use in the networks with packet loss errors.

SUMMARY OF THE INVENTION

[0030] Accordingly, we propose a novel algorithm for fast encryption which employs some of the approaches used in FEA-M. The algorithm according to this invention has much higher level of cryptographic security, and it is robust against packet loss errors, which is very important for the streaming applications.

[0031] Starting from an analysis and comparison of the main security issues related to SDR and an usual Internet downloading, and identified specific characteristics, a novel dedicated cipher for SDR secure downloading based on Boolean Matrices is proposed.

[0032] The proposed encryption algorithm does not follow the standard paradigm of a block or stream cipher, it employs a very long secret key, and it is resistant against all known attacks.

[0033] Further, the developed encryption technique offers low implementation complexity, and suitability for FPGA and DSP frameworks of SDR.

[0034] It is one objective of the present invention to provide a novel enciphering algorithm based on Boolean matrices. It is another objective of the present invention to provide a method for encrypting and decrypting data message utilizing the novel enciphering algorithm based on Boolean matrices. Further, It is another objective of the present invention to provide a data communication system which transmits encrypted data utilizing the novel enciphering algorithm based on Boolean matrices.

[0035] According to one aspect of the present invention, a method for encrypting a data message, comprising the steps of:

[0036] (A) dividing a data message into a series of blocks P₁, P₂, . . . , P_(m), wherein block number is m;

[0037] (B) calculating: K^(n) and K^(−n)=(K⁻¹)^(n); and, setting: K₀=K^(n) and K₀*=K^(−n)

[0038] wherein the parameters are defined as follows;

[0039] K: Session key in form of an n×n binary matrix

[0040] K⁻¹: Inverse matrix of K,

[0041] (C) for each i=1, 2, . . . , m, do the following steps,

[0042] (C-1) calculating: T=[t_(rs)]=KK_(i-1),

[0043] (C-2) calculating: y = ⊕_(r = 1)^(n)t_(rr)

[0044] (c-3) and calculating K_(i) and K*_(i) according to the following equations:

[0045] (a) if y=1→K_(i)=T

[0046] (b) if y=0→K_(i)=KT

[0047] (c) if y=1→K*_(i)=K⁻¹K*_(i-1)

[0048] (d) if y=0→K*_(i)=K⁻¹K⁻¹K*_(i-1)

[0049] (D) generating a series of encrypted data message blocks C₁, C₂, . . . , C_(m); by computing the following equation,

C _(i) =K(P _(i) +K* _(i) VT)K _(i),

[0050] Wherin V is initial n×n binary matrix.

[0051] According to another aspect of the present invention, the method further comprising the step of:

[0052] generating following values K^((e)) and V^((e)) which can be used at the data decryption side for recovering values: K⁻¹ and V,

K ^((e)) =K _(M) K ⁻¹ K _(M)

V ^((e)) =K _(M) VK _(M).

[0053] According to another aspect of the present invention, a method for decrypting an encrypted data message, comprising the steps of:

[0054] (A) inputting a series of encrypted data message blocks C₁, C₂, . . . , C_(m), wherein block number is m;

[0055] (B) calculating: K^(n) and K^(−n)=(K⁻¹)^(n); and, setting: K₀=K^(n) and K₀*=K^(−n),

[0056] wherein the parameters are defined as follows;

[0057] K: Session key in form of an n×n binary matrix

[0058] K⁻¹: Inverse matrix of K

[0059] (C) for each i=1, 2, . . . , m, do the following steps,

[0060] (C-1) calculating: T=[t_(rs)]=KK_(i-1),

[0061] (C-2) calculating: y = ⊕_(r = 1)^(n)t_(rr)

[0062] (C-3) and calculating K_(i) and K*_(i) according to the following equations:

[0063] (a) if y=1→K_(i)=T

[0064] (b) if y=0→K_(i)=KT

[0065] (c) if y=1→K*_(i)=K⁻¹K*_(i-1)

[0066] (d) if y=0→K*_(i)=K⁻¹K⁻¹K*_(i-1)

[0067] (D) generating a series of plain data message blocks P₁, P₂, . . . , P_(m); by computing the following equation,

P _(i) =K ⁻¹ C _(i) K* _(i) +K* _(i) VT,

[0068] Wherin V is initial n×n binary matrix.

[0069] According to another aspect of the present invention, the method further comprising the step of:

[0070] generating following values K⁻¹ and V by computing the following equation,

K ⁻¹ =K _(M) ⁻¹ K ^((e)) K _(M) ⁻¹;

V=K _(M) ⁻¹ V ^((e)) K _(M) ⁻¹.

[0071] wherein K_(M) is a master secret key in form of n×n binary matrix, and as to K^((e)) and V^((e)), following equations are defined,

K ^((e)) =K _(M) K ⁻¹ K _(M)

V ^((e)) =K _(M) VK _(M).

[0072] According to another aspect of the present invention, A data processing device for encrypting a data message, comprising:

[0073] (A) a data processing logic for dividing a data message into a series of blocks P₁, P₂, . . . , P_(m), wherein block number is m;

[0074] (B) a data computing logic for calculating K^(n) and K^(−n)=(K⁻¹)^(n); and setting: K₀=K^(n) and K₀*=K^(−n)

[0075] wherein the parameters are defined as follows;

[0076] K: Session key in form of an n×n binary matrix

[0077] K⁻¹: Inverse matrix of K,

[0078] (C) a data computing logic for processing the following calculation (c-1) to (c-3) for each i=1, 2, . . . , m, do,

[0079] (C-1) calculation: T=[t_(rs)]=KK_(i-1),

[0080] (C-2) calculation: y = ⊕_(r = 1)^(n)t_(rr)

[0081] and (c-3) calculation:

[0082] (a) if y=1→K_(i)=T

[0083] (b) if y=0→K_(i)=KT

[0084] (c) if y=1→K*_(i)=K⁻¹K*_(i-1)

[0085] (d) if y=0→K*_(i)=K⁻¹K⁻¹K*_(i-1)

[0086] (D) a data computing logic for generating a series of encrypted data message blocks C₁, C₂, . . . , C_(m); by computing the following equation,

C _(i) =K(P _(i) +K* _(i) VT)K _(i),

[0087] Wherin V is initial n×n binary matrix.

[0088] According to another aspect of the present invention, the data processing device further comprises:

[0089] a data computing logic for generating following values K^((e)) and V^((e)) which are used at the data dexryption side for recovering values: K⁻¹ and V,

K ^((e)) =K _(M) K ⁻¹ K _(M)

V ^((e)) =K _(M) VK _(M).

[0090] According to another aspect of the present invention, the data processing device is configured in a field programmable gate array.

[0091] According to another aspect of the present invention, An data processing device for decrypting an encrypted data message, comprising:

[0092] (A) a data input means for inputting a series of encrypted data message blocks C₁, C₂, . . . , C_(m), wherein block number is m;

[0093] (B) a data computing logic for calculating K^(n) and K^(−n)=(K⁻¹)^(n); and, setting: K₀=K^(n) and K₀*=K^(−n),

[0094] wherein the parameters are defined as follows;

[0095] K: Session key in form of an n×n binary matrix

[0096] K⁻¹: Inverse matrix of K

[0097] (C) a data computing logic for processing the following calculation (c-1) to (c-3) for each i=1, 2, . . . , m, do,

[0098] (C-1) calculation: T=[t_(rs)]=KK_(i-1),

[0099] (C-2) calculation: y = ⊕_(r = 1)^(n)t_(rr)

[0100] and (c-3) calculation:

[0101] (a) if y=1→K_(i)=T

[0102] (b) if y=0→K_(i)=KT

[0103] (c) if y=1→K*_(i)=K⁻¹K*_(i-1)

[0104] (d) if y=0→K*_(i)=K⁻¹K⁻¹K*_(i-1)

[0105] (D) a data computing logic for generating a series of plain data message blocks P₁, P₂, . . . , P_(m); by computing the following equation,

P _(i) =K ⁻¹ C _(i) K* _(i) +K* _(i) VT,

[0106] Wherin V is initial n×n binary matrix.

[0107] According to another aspect of the present invention, the data processing device further comprises:

[0108] a data computing logic for generating following values K⁻¹ and V by computing the following equation,

K ⁻¹ =K _(M) ⁻¹ K ^((e)) K _(M) ⁻¹;

V=K _(M) ⁻¹ V ^((e)) K _(M) ⁻¹.

[0109] wherein K_(M) is a master secret key in form of n×n binary matrix, and as to K^((e)) and V^((e)), following equations are defined,

K ^((e)) =K _(M) K ⁻¹ K _(M)

V ^((e)) =K _(M) VK _(M).

[0110] According to another aspect of the present invention, the data processing device is configured in a field programmable gate array.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0111] As explained above, a software re-configurable radio system or software defined radio (SDR) is based on downloading of all the relevant software via a public channel, and accordingly the security issue of the downloading is one of the key issues.

[0112] Specific security requests for SDR can be summarized as follows.

[0113] (1) Restrictions on Downloading

[0114] Only approved software should be possible to download into SDR. Such a request does not exist in an usual secure downloading.

[0115] (2) Involved Parties in a Secure Downloading System

[0116] A mandatory involved party in a secure downloading system for SDR should be the software approval authority. An usual secure downloading does not require involvement of an approval authority.

[0117] (3) User Inaccessibility to the Security System for Downloading

[0118] One of the most interesting differences between a system for SDR secure downloading and a system for an usual secure downloading via Internet is that in the SDR case an user should not have any control over the security system. Otherwise, a malicious user could perform illegal actions based on a possibility to control the security system. Particularly, a SDR user should not has any influence on selection of the involved cryptographic techniques and keys. Accordingly, appropriate measures should be included to prevent any access of the user to the security system. A method for enforcing this rule is employment of the tamper resistant hardware.

[0119] The specific implementation requests can be summarized as follow:

[0120] Both main components for SDR implementation, FPGA and DSP imply that desirable cryptographic components should employ as simple as possible operations over GF(2) for the cryptographic processing.

[0121] FEA-M is a recently proposed fast encryption algorithm for multimedia, which is based on Boolean matrices. FEA-M and the algorithm according to this invention, both are packet oriented techniques and based on employment of Boolean matrices but, the proposed algorithm has the following two advantages over FEA-M:

[0122] (i) the effective secret key size is equal to the nominal one;

[0123] (ii) it is robust against the network errors which cause packet loss.

[0124] Analysis of specific security and implementation issues related to secure software downloading implies the following statements relevant for construction of a dedicated encryption technique:

[0125] (1) secret key can be very long because an user does not need even to know it;

[0126] (2) FPGA as well as DSP implementation suggest dominant employment of simple arithmetic operations like additions and multiplications over GF(2) in order to obtain an efficient implementation.

[0127] Some recent research results related to a construction and analysis of a ciphering scheme based on Boolean matrices imply that Boolean matrices approach can be a suitable one for software defined radio.

[0128] (1) Boolean Matrices

[0129] We consider Boolean matrices, i.e. matrices over the finite field GF(2)={0, 1} in which addition and multiplication are defined as follows: $\begin{matrix} {{{0 \oplus 0} = 0},} & {{0 \cdot 0} = 0} \\ {{{0 \oplus 1} = 1},} & {{0 \cdot 1} = 0} \\ {{{1 \oplus 0} = 1},} & {{1 \cdot 0} = 0} \\ {{{1 \oplus 1} = 0},} & {{1 \cdot 1} = 1} \\ {{\oplus {:{addition}}},} & \quad \\ {\cdot {:{multiplication}}} & \quad \end{matrix}$

[0130] and where the following distributive property holds

(a{circle over (+)}b)·c=(a·c){circle over (+)}(b·c)

a·(b{circle over (+)}c)=(a·b){circle over (+)}(a·c)

[0131] for any a, b, c ∈ GF(2).

[0132] On basis of the above definitions, Boolean matrix addition and Boolean matrix multiplication are defined as follows:

[0133] For any Boolean matrices

[0134] A=[a_(ij)]_(n×n), B=[b_(ij)]_(n×n) and C=[c_(ij)]_(n×n), A + B = [a_(ij)] + [b_(ij)] = [a_(ij) ⊕ b_(ij)] ${AC} = {{\left\lbrack a_{ij} \right\rbrack \left\lbrack c_{ij} \right\rbrack} = \left\lbrack {\underset{1 \leq k \leq n}{\oplus}{a_{ik} \cdot c_{kj}}} \right\rbrack}$ ${{where}\underset{1 \leq k \leq n}{\oplus}{a_{ik} \cdot c_{kj}}} = {\left( {a_{i1} \cdot c_{1j}} \right) \oplus \left( {a_{i2} \cdot c_{2j}} \right) \oplus \ldots \quad \oplus \left( {a_{in} \cdot c_{nj}} \right)}$

[0135] Note that usually, AC≠CA.

[0136] An n×n Boolean matrix A is invertible (or nonsingular) if there exists an n×n Boolean matrix B such that

A·B=B·A=I

[0137] where I is the identity n×n binary matrix which has all ones on the main diagonal and its all other elements are equal to zero. If A is an invertible matrix, then its inverse is unique. We denote the inverse of A by A⁻¹.

[0138] (2) FEA-M

[0139] This section gives an overview of FEA-M as it is proposed in “X. Yi, C. H. Tan, C. K. Siew and M. R. Syed, “Fast encryption for multimedia”, IEEE Transactions on Consumer Electronics, vol. 47, pp. 101-107, February 2001” restricted only to characteristics of FEA-M relevant for our further analysis. FEA-M performs encryption and decryption according to the following.

[0140]FIG. 2 shows the FEA-M encryption algorithm. At first, the plain-text message should be divided into a series of blocks P₁, P₂, . . . , P_(r) with same length n². If the length of the last block is less than n², we need append some 0s in it so that it length is right n². The n² bits of each block are arranged as a square matrix of order n. The encryption and decryption processes involve the session key K and the initial matrix V₀ which are binary matrices of order n. Generation and distribution of these two matrices will be discussed later on, and in this moment we assume that they are known by the sender and receiver, and that they are unknown to any other third party.

[0141] Each plain-text matrix P_(i) is encrypted into cipher-text C_(i) in the following way:

C ₁ =K(P ₁ +V ₀)K+V ₀  (1)

C ₂ =K(P ₂ +C ₁)K ² +P ₁ . . . C _(i) =K(P _(i) +C _(i-1))K ^(i) +P _(i-1)  (2)

[0142] In FIG. 2, the step s101 is the process for judging i>1 or not, and if i=1, then executes steps S102 and S103, and if i>1, then executes steps S104 and S105. The process in steps S102 and S103 corresponds the above described calculation (1), and the process in steps S104 and S105 corresponds the above described calculation (2).

[0143] Each corresponding cipher-text matrix C_(i) is decrypted into plaintext P_(i) in the following way:

P ₁ =K ⁻¹(C ₁ +V ₀)K ⁻¹ +V ₀  (3)

P ₂ =K ⁻¹(C ₂ +P ₁)K ⁻² +C ₁ . . . P _(i) =K ⁻¹(C _(i) +P _(i-1))K ⁻¹ +C _(i-1)  (4)

[0144] FEA-M assumes employment of a master secret key in form of an n×n binary matrix K₀ which has been distributed to the parties in a secure way. Initially, the sender is required to generate session key in form of a binary matrix K. A method for the generation of the matrix K and its inverse K⁻¹ is proposed in “X. Yi, C. H. Tan, C. K. Siew and M. R. Syed, “Fast encryption for multimedia”, IEEE Transactions on Consumer Electronics, vol. 47, pp. 101-107, February 2001” and will not be discussed here because it is not relevant for our analysis.

[0145] Besides the session key matrix, the sender is required to randomly generate an initial binary matrix V₀. Each element of V₀ is randomly chosen from GF(2) so that the distribution of 0 and 1 in V₀ obeys the uniform distribution. By using the master key matrix K₀, the inverse of the session key matrix K and the initial matrix V₀ can be distributed from the sender to the receiver in the following way.

[0146] The sender side computes the following

K _(*) =K ₀ K ⁻¹ K ₀  (5)

V _(*) =K ₀ V ₀ K ₀  (6)

[0147] and sends (K_(*), V_(*)) to the receiver.

[0148] The receiver side recovers K⁻¹ and V₀ by computing

K ⁻¹ =K ₀ ⁻¹ K _(*) K ₀ ⁻¹,  (7)

V ₀ =K ₀ ⁻¹ V _(*) K ₀ ⁻¹.  (8)

[0149] (3) An Upper Bound on the Effective Secret Key Size

[0150] This section yields a security evaluation of FEA-M via an analysis of the effective master secret key size. We consider FEA-M assuming that the parameter n has an arbitrary value.

[0151] Let {P^((j))}_(j=1) ^(m) denotes a set of m plain messages and {C^((j))}_(j=1) ^(m) denotes a set of the corresponding enciphered messages generated by FEA-M, where each P^((j)) and C^((j)) consist of r binary blocks P₁ ^((j)), P₂ ^((j)), . . . , P_(r) ^((j)) and C₁ ^((j)), C₂ ^((j)), . . . , C_(r) ^((j)), respectively. Let FEA-M operates over n×n binary matrix, and the master key K₀ is an n×n binary matrix. Finally, let K_(*) ^((j)) and V_(*) ^((j)) denote the session key matrix and the initial matrix, respectively, corresponding to the jth message, j=1, 2, . . . , 4n.

[0152] In this section we analyze the effective secret key size of FEA-M, i.e. real uncertainty of the master secret key assuming that the following assumption holds.

[0153] Assumption 1.

[0154] A collection of the ciphertext blocks C₁ ^((j)) is known which corresponds to different pairs (K_(*) ^((j)), V_(*) ^((j))) when P₁ ^((j)) is the all zero matrix and K_(*) ^((j)) is an invertible matrix, j=1, 2, . . . , 4n.

[0155] Lemma 1.

[0156] Assumption 1 implies existence of the following system of equations

K₀((K _(*) ^((j)))⁻¹ V _(*) ^((j))(K _(*) ^((j)))⁻¹)K ₀ =C ₁ ^((j)) +K ₀ ⁻¹ V _(*) ^((j)) K ₀ ⁻¹,  (9)

[0157] for j=1, 2, . . . , 4n, where only K₀ is an unknown variable.

[0158] Proof.

[0159] For each j=1, 2, . . . , 4n, equation (3) implies the following one

V ₀ ^((j))=(K ^((j)))⁻¹(C ₁ ^((j)) +V ₀ ^((j)))(K ^((j)))⁻¹  (10)

[0160] where

(K ^((j)))⁻¹ =K ₀ ⁻¹ K _(*) ^((j)) K ₀ ⁻¹;,  (11)

V ₀ ^((j)) =K ₀ ⁻¹ V _(*) ^((j)) K ₀ ⁻¹;.  (12)

[0161] After some straightforward algebra, (10)-(12) imply the lemma statement.

[0162] Theorem 1.

[0163] Complexity of recovering FEA-M master secret key is proportional to n 2^(2n) providing that Assumption 1 holds.

[0164] Sketch of the proof.

[0165] Recovering of the master secret key is equivalent to solving the system of equations given by Lemma 1 where unknown variables are elements of the master secret key matrix K₀. Underlying ideas for efficient solving this system of equations include employment of the following:

[0166] divide and conquer method,

[0167] exhaustive search over a set of hypothesis, and

[0168] solving a system of linear equations.

[0169] Note that a nonlinear system of equations over GF(2) $\begin{matrix} {{{{\underset{1 \leq k \leq n}{\oplus}{x_{i,k} \cdot y_{kj}}} = c_{ij}},{i = 1},{2\quad \ldots}\quad,n}{{j = 1},2,{\ldots \quad n}}} & (13) \end{matrix}$

[0170] where {x_(ij)} and {y_(ij)} are unknown variables reduces to a Iinear one when the set of all x-variables or y-variables is assumed.

[0171] Accordingly, if we assume values of elements in ith rows, i=1, 2, . . . , n, of K₀ and K₀ ⁻¹ than (9) implies that for each k=1, 2, . . . , n, we can construct a system of 4n linear equations where the unknown variables are elements in kth columns of K₀ and K₀ ⁻¹ and solve it in the following manner:

[0172] 2n of these equations should be employed for recovering the considered kth columns under assumption that the hypothesis about the ith rows are correct, and

[0173] the remained 2n equations should be employed for checking correctness of the hypothesis.

[0174] So, it can be directly shown that above procedure implies that complexity of solving the system of equations (9) is proportional to n2^(2n) which yields the theorem statement. Theorem 1 directly implies the following corollary.

[0175] Corollary 1.

[0176] FEA-M has effective secret key size upper bounded to 2n+log₂ n and it is n²/(2n+log₂ n) times smaller than its nominal size.

[0177] (4) An algorithm for FEA-M crypt-analysis

[0178] This section gives an algorithm for FEA-M cryptanalysis.

[0179] An algorithm for FEA-M cryptanalysis is as follows.

[0180] Input

[0181] A collection of the ciphertext blocks C₁ ^((j)) which corresponds to different pairs (K_(*) ^((j)), V_(*) ^((j))) when P₁ ^((j)) is the all zero matrix and K_(*) ^((j)) is an invertible matrix, j=1, 2, . . , 4n−2, assuming that the system of equations has the unique solution.

[0182] Processing

[0183] 1. Set the first row elements of K₀ and K₀ ⁻¹ to a previously unconsidered pattern from the set of all 2^(2n) possible binary patterns

[0184] 2.Employing $\begin{matrix} {{K_{0} = {X = \left\lbrack x_{ik} \right\rbrack_{i = 1}^{n}}},_{k = 1}^{n},} \\ {{K_{0}^{- 1} = {Y = \left\lbrack y_{ik} \right\rbrack_{i = 1}^{n}}},_{k = 1}^{n},} \\ {{A^{(j)} = {\left\lbrack a_{ik}^{(j)} \right\rbrack_{\quad}}_{i = 1}^{n}},_{k = 1}^{n}{= {\left( K_{*}^{(j)} \right)^{- 1}{V_{*}^{(j)}\left( K_{*}^{(j)} \right)}^{- 1}}},} \\ {{B^{(j)} = {\left\lbrack b_{ik}^{(j)} \right\rbrack_{\quad}}_{i = 1}^{n}},_{k = 1}^{n}{= V_{*}^{(j)}},} \\ {{C^{(j)} = {\left\lbrack c_{ik}^{(j)} \right\rbrack_{\quad}}_{i = 1}^{n}},_{k = 1}^{n}{= C_{1}^{(j)}},} \end{matrix}$

[0185] construct the following system of 4n−2 linear equations with 2n−2 unknown binary variables: $\begin{matrix} {{{{\overset{n}{\underset{m = 1}{\oplus}}{\alpha_{1m}^{(j)}x_{mk}}} = {c_{1k}^{(j)} \oplus \left( {\overset{n}{\underset{m = 1}{\oplus}}{\beta_{1m}^{(j)}y_{mk}}} \right)}},\quad {j = 1},2,\ldots \quad,{{4n} - 2}}{where}} & (14) \\ \begin{matrix} {{\alpha_{1m}^{(j)} = {\overset{n}{\underset{l = 1}{\oplus}}{x_{1l}a_{lm}^{(j)}}}},} \\ {{\beta_{1m}^{(j)} = {\overset{n}{\underset{l = 1}{\oplus}}{y_{1l}b_{lm}^{(j)}}}},} \end{matrix} & (15) \end{matrix}$

[0186] are known under the considered hypothesis about [x_(1k)]^(n) _(k=1) and [y_(1k)]^(n) _(k=1).

[0187] 3. Do the following

[0188] (a) Recover [x_(i1)]^(n) _(i=2) and [y_(i1)]^(n) _(i=2) solving the corresponding system of the first 2n−2 linear equations under the given hypothesis.

[0189] (b) Employ the remained 2n equations for checking correctness of the hypothesis by checking consistence of these equations with the current hypothesis and the obtained solution, by evaluating (14) for j=2n−1, 2n, . . . , 4n−2; consequently perform the following actions:

[0190] i. if all the checks are positive accept the candidates as the true ones and memorize them as the first rows and columns of K₀ and K₀ ⁻¹.

[0191] ii. otherwise go to Step 1.

[0192] 4. For each k=2, 3, . . . , n do the following:

[0193] recover [x_(ik)]^(n) _(i=2) and [y_(ik)]^(n) _(i=2) solving the system of equations (14) when j=1, 2, . . . , 2n−2, using [x_(1k)]^(n) _(i=1) and [y_(1k)]^(n) _(i=1) recovered in Step 3(b);

[0194] memorize the solution [x_(ik)]^(n) _(i=1) and [y_(ik)]^(n) _(i=1) as the kth columns of K₀ and K⁻¹ ₀;

[0195] if k=n go to Output.

[0196] Output

[0197] Recovered master secret key K₀.

[0198] (5) Consequences of the Effective Secret Key Size

[0199] In the previous section the effective size of FEA-M master secret key has been derived, and this section points out the security consequences of the derived result. The discussion is not limited only to the case when n=64 suggested in in “X. Yi, C. H. Tan, C. K. Siew and M. R. Syed, “Fast encryption for multimedia”, IEEE Transactions on Consumer Electronics, vol. 47, pp. 101-107, February 2001” because FEA-M can operate for any n and it is reasonable to assume that an interested party might employ FEA-M using a smaller value of the parameter n in order to use smaller secret key size which is equal to n².

[0200] Regarding the security of FEA-M, the above reference takes into account the following statement: For multimedia applications, information rate is very high, but the information value is very low, and so, breaking the encryption code is much more expensive than to buy the legal access.

[0201] Although the previous statement is a correct one for a large number of situations, it is still interesting and important to know as precise as possible the security margins of any enciphering scheme.

[0202] Scenario for deriving the effective master secret key size which assumes that in a number of the data streams the first n×n block consists of all zeros is at least a possible one and should be taken into account for the overall security evaluation.

[0203] Accordingly, Corollary 1 is numerically considered by the Table I shown in FIG. 3.

[0204] Table I is an illustration for the following statements:

[0205] (i) The nominal secret key size yields a misleading information regarding the security of FEA-M because real uncertainty of the master secret key is totally different in a scenario given by Assumption 1.

[0206] (ii) In the case proposed in the above mentioned reference, when the parameter n=64 FEA-M is not breakable by the approach given in Section (4) because it requires an exhaustive search over 2¹ ³ ⁴ hypothesis, but the uncertainty on master secret key is smaller than it is indicated by the master secret key length for a factor proportional to 2³ ⁹ ⁶ ². Accordingly, this implies a very inefficient use of the employed master secret key which is an undesirable property.

[0207] (iii) The NESSIE project disclosed in “New European Schemes for Signatures, Integrity and Encryption (NESSIE) Project”, for example, implies that a 256-bits secret key is a very large one, and on the other hand FEA-M with the same key size is a totally insecure encryption algorithm because in this case the effective secret key size is only 36 bits.

[0208] (iv) Moreover, FEA-M can be considered as an insecure enciphering technique if the employed master secret key is smaller than 1024 bits.

[0209] (6) Sensitivity on Packet Loss Errors

[0210] We focus on a probabilistic model of packet loss within the network. Accordingly, in this section we consider FEA-M scheme in a (q, 1)-network. In such a network, each packet can be lost independently at random with probability q. Note that “V. Paxson, “End-to-end Internet packet dynamics”, IEEE/ACM Transactions on Networking, vol. 7, pp. 277-292, 1999” presents an experimental study which includes consideration of the packets loss on the Internet. The current Internet does not provide any loss guarantee, and in particular the packet loss ratio could be very high.

[0211] Property 1.

[0212] Suppose that an r-blocks length message is encrypted by FEA-M. Than, if a block j, j<r, is the first lost block of the message ciphertext, only a part of the message consisting of the first j−1 blocks can be decrypted.

[0213] Proof.

[0214] Recall that decryption of the jth block and further blocks is given by the following:

P _(i) =K ⁻¹(C _(i) +P _(i-1))K ⁻¹ +C _(i-1),  (16)

[0215] i=j, j+1, . . . , r.

[0216] Accordingly, it is directly evident that if the ciphetext block C_(j) is lost, no one block P₁, i≧j can be decrypted.

[0217] Corollary 2.

[0218] When the number of message blocks r is grater than q⁻¹, expected number of completely decrypted messages is close to 0.

[0219] Previous statements show that FEA-M is not suitable for applications in a network where the packets can be lost because when a packet is lost, all the packets after that one can not be decrypted, and accordingly the corresponding part of the message can not be used.

[0220] (7) Boolean Matrix Based Encryption Algorithm

[0221] We assume that a message is divided into a series of blocks P₁, P₂, . . . , P_(r) with same length n². If the length of the last block is less than n², we need append some 0s in it so that it length is right n². The n² bits of each block are arranged as a square matrix of order n.

[0222] The encryption and decryption processes involve the session key K and the initial matrix V which are binary matrices of order n. In the proposed scheme we assume employment of the same key distribution as it is reported in the reference article “X. Yi, C. H. Tan, C. K. Siew and M. R. Syed, “Fast encryption for multimedia”, IEEE Transactions on Consumer Electronics, vol. 47, pp. 101-107, February 2001”.

[0223] Accordingly, we assume existence of a master secret key in form of an n×n binary matrix K_(M) which has been distributed to the parties in a secure way. Initially, the sender is required to generate session key in form of a binary matrix K. A method for the generation of the matrix K and its inverse K⁻¹ is given in the above-mentioned reference. Besides the session key matrix, the sender is required to randomly generate an initial binary matrix V.

[0224] Each element of V is randomly chosen from GF(2) so that the distribution of 0 and 1 in V obeys the uniform distribution. By using the master key matrix K_(M), the inverse of the session key matrix K and the initial matrix V can be distributed from the sender to the receiver in the following way.

[0225] The sender side computes the following

K ^((e)) =K _(M) K ⁻¹ K _(M)  (17)

V ^((e)) =K _(M) VK _(M)  (18)

[0226] and sends (K^((e)), V^((e))) to the receiver.

[0227] The receiver side recovers K⁻¹ and V by computing

K ⁻¹ =K _(M) ⁻¹ K ^((e)) K _(M) ⁻¹  (19),

V=K _(M) ⁻¹ V ^((e)) K _(M) ⁻¹  (20),

[0228] In here proposed algorithm, each plaintext matrix P_(i) is encrypted into ciphertext C_(i), and each corresponding ciphertext matrix C_(i) is decrypted into plaintext P_(i) in the following way.

C _(i) =K(P _(i) +K* _(i) VT)K _(i)  (21)

P _(i) =K ⁻¹ C _(i) K* _(i) +K* _(i) VT  (22)

[0229] The following figures and algorithms specify the encryption and decryption sequences in accordance with this invention.

[0230] The encryption sequence is shown in FIG. 4, and the decryption sequence is shown in FIG. 5. FPGA configuration is suitable for processing these encryption and decrption algorithms, because each configurable logic block (CLB) in FPGA can process the each process block in FIG. 4 and FIG. 5.

[0231] Encryption Algorithm (FIG. 4) is as follows.

[0232] (1) Input:

[0233] secret: master secret key K_(M), message secret key K, and message seed V;

[0234] public: plaintext {P_(i)}_(i=1) ^(m).

[0235] (2) Preprocessing:

[0236] calculate: K^(n) and K^(−n)=(K⁻¹)^(n);

[0237] set: K₀=K^(n) and K₀*=K^(−n).

[0238] (3) Processing: (Step S211, S221)

[0239] for each i=1, 2, . . . , m, do the following:

[0240] (3-1) calculate: T=[t_(rs)]=KK_(i-1).

[0241] (3-2) calculate: y = ⊕_(r = 1)^(n)t_(rr)

[0242] and based on the judgment whether y=0 or 1 (Step, S212, S222), do the following:

[0243] (a) if y=1→K_(i)=T (Step, S214)

[0244] (b) if y=0→K_(i)KT (Step, S213)

[0245] (c) if y=1→K*_(i)K⁻¹K*_(i-1) (Step, S224)

[0246] (d) if y=0→K*_(i)=K⁻¹ K ⁻¹ K* _(i-1) (Step, S223)

[0247] In the step S215, and S225, depending on the value of y, that is whether y=0 or 1, the output can be selected, and then executes the following calculation step.

[0248] (3-3) calculate: (Step S231)

C _(i) =K(P _(i) +K* _(i) VT)K _(i)

[0249] (4) Output:

[0250] C_(i)=, i=1, 2, . . . , m.

[0251] As described above, the encryption sequence is executed, and the ciphertext C_(i) can be generated.

[0252] Decryption Algorithm is as follows. (Please refer to FIG. 5)

[0253] (1) Input:

[0254] secret: master secret key K_(M);

[0255] public: plaintext {P_(i)}^(m) _(i=1), encrypted forms of session secret key and session seed, K^((e)) and V^((e)), respectively.

[0256] (2)Preprocessing:

[0257] recover session secret key K and session seed V by the following:

K ⁻¹ =K _(M) ⁻¹ K ^((e)) K _(M) ⁻¹;

V=K _(M) ⁻¹ V ^((e)) K _(M) ⁻¹.

[0258] calculate: K^(n) and K^(−n)=(K⁻¹)^(n);

[0259] set: K₀=K^(n) and K₀*=K^(−n).

[0260] (3) Processing: (Step S311, S321)

[0261] for each i=1, 2, . . . , m, do the following:

[0262] (3-1) calculate: T=[t_(rs)]KK_(i-1).

[0263] (3-2) calculate: y = ⊕_(r = 1)^(n)t_(rr)

[0264] and based on the judgment whether y=0 or 1 (Step, S312, S322), do the following:

[0265] (a) if y=1→K_(i)=T (Step, S314)

[0266] (b) if y=0→K_(i)=KT (Step, S313)

[0267] (c) if y=1→K*_(i)=K⁻¹K*_(i-1) (Step, S324)

[0268] (d) if y=0→K*_(i)=K⁻¹K⁻¹K*_(i-1) (Step, S323)

[0269] In the step S215, and S225, depending on the value of y, that is whether y=0 or 1, the output can be selected, and then executes the following calculation step.

[0270] (3-3) calculate: (Step S331)

P _(i) =K ⁻¹ C _(i) K* _(i) +K* _(i) VT

[0271] (4) Output:

[0272] P_(i)=, i=1, 2, . . . , m.

[0273] As described above, the decryption sequence is executed, and the plaintext P_(i) can be generated.

[0274] (8) Encryption in SDR System

[0275] An illustration of employment of the proposed encryption for the privacy protection of the software to be downloaded into SDR is displayed in FIG. 6.

[0276] The software program with digital signature 201 is encrypted by encryption function 202 with a secret key 203 which is valid only for a single terminal. This encryption function 202 is configured in FPGA in a tamper resistant ROM. This encryption function 202 executes the encryption algorithm described above (shown in FIG. 4).

[0277] This encryption function 202 process creates signed and encrypted program 204. That is, only that terminal has the knowledge of the secret key 203. The secret key 203 is stored in tamper proof hardware on the terminal device. Since symmetric encryption techniques are used, the encryption and decryption is much faster then asymmetric techniques. This is an advantage for real-time encryption and also for speedy loading of the bitfile into the FPGA.

[0278] (9) Decryption at the Terminal in SDR System

[0279] The functionality diagram of the terminal hardware is shown in FIG. 7.

[0280] The decryption of the downloaded software is essentially the reverse of the encryption process.

[0281] First the encrypted bitfile 451 is decrypted using the terminal secret key 452 (S401). In this decryption process, the above explained decryption algorithm (shown in FIG. 5) is executed.

[0282] Next, the digital signature (which is an encrypted hash function) is decrypted using the government public key 453, available to all terminals (S402). Using the known hash function the decrypted bitfile hash or fingerprint is calculated (S403), and if the two match (S404) then the software is legitimate and has not been modified since it was approved (S405).

[0283] Therefore, based on this verification of integrity and authentication, the bitfile should be downloaded into the FPGA. If the fingerprints do not match, then the software has been modified or is not signed and approved by the government, and is not loaded and the appropriate error messages should be displayed to the user.

[0284] The security check described above is executed by a security check device which is configured in FPGA in a tamper resistant hardware package. This tamper resistant hardware package also comprises a re-configurable logic (FPGA) for downloading the decrypted bitfile.

[0285] Terminal secret key 452 and government public key 453 are stored in a memory in the security check device equipped in the tamper resistant hardware package. In one example, a manufacturer of wireless data communication apparatus, such as SDR, stores these key in tamper resistant hardware package.

[0286] (10) SDR Configuration

[0287]FIG. 8 shows a block diagram of a wireless data communication apparatus, for example SDR, in accordance with a preferred embodiment of the present invention. SDR comprises transceiver 501, A/D,D/A converter 502, tamperproof (tamper resistant) hardware package which includes reconfigurable logic and a device for processing security function, digital signal processor (DSP) 504, CPU 505, ROM 506, Memory 507, I/O interface 508 and A/D.D/A converter 509. Data can be transmitted between above mentioned elements through a data bus.

[0288] A software program (bitstream) to be downloaded to the reconfigurable logic in tamperproof hardware package 503 is received by transceiver 501, and transmitted to tamperproof hardware package 503. Security check process for the transmitted program is executed by a security check device which is also configured by FPGA in tamperproof hardware package 503. The security check device verifies whether a program is proper, and only the verified program is permitted to be downloaded to the reconfigurable logic.

[0289] The security check device equipped in the tamper resistant hardware package comprises a processing unit for executing security check process as to a software program to be downloaded to the reconfigurable logic in the same tamper resistant hardware package.

[0290] The security check device further comprises memory storing a secret key. A processing unit in a security check device executes decryption of an encrypted software program by using said secret key. In one example, this secret key is uniquely assigned to each wireless data communication apparatus.

[0291] The security check device further comprises memory storing an authorized agency's public key. The security check device checks digital signature attached to a software program by using the authorized agency's public key.

[0292] The security check device equipped in a tamper resistant hardware package executes authentication procedure by checking a digital signature attached to a software program, and executes verification of integrity of the software program by calculating hash value based on software program data.

[0293] (11) System Configuration

[0294]FIG. 9 shows a block diagram for a wireless network in which the present invention's algorithm can be applied. Software defined radio (SDR) terminals 621, 623, 624 . . . may receive, transmit, or both using either simplex or duplex communication techniques. Reconfigurable logic (Programmable logic device (PLD)) is equipped in SDR. One type of PLD, a field programmable gate array (FPGA), typically includes elements such as configurable logic blocks (CLBs), input/output blocks (IOBs), and interconnect that programmably connects the CLBs and IOBs.

[0295] The configuration of the CLBs, IOBs, and interconnect is determined by a bit-stream. Reconfigurable logic is equipped in tamperproof hardware package 650. This tamperproof hardware package 650 also includes another reconfigurable logic for processing security functions, such as authentication, verification of integrity of the software to be download to the other reconfigurable logic.

[0296] The bit-stream for downloading is sent from Server 601 through base station 611. Further software program (bitstream) can be loaded from storage devices such as optical memory devices, magneto memory devices, and so on.

[0297]FIG. 10 shows a data communication system comprising a server device 710 and a client device 720. The server device 710 sends data encrypted by the above explained encryption algorithm, and the client device 720 received the date and decrypts the received data utilizing the above explained decryption algorithm.

[0298] The data is transmitted through public communication channel (e.g. internet) 750.

[0299] The server device 710 comprises a data enciphering means 712 which executes a process of dividing a data message 711 into a series of blocks P₁, P₂, . . . , P_(n), and executes a process of generating a series of encrypted data message blocks C₁, C₂, . . . , C_(n) by computing the above explained equation,

C _(i) =K(P _(i) +K* _(i) VT)K _(i)

[0300] In this encryption process, Secret key K 713 is used. Secret key K 713 is a session key in form of an n×n binary matrix.

[0301] The client device 720 receives encrypted data 721. The client device 720 comprises a data deciphering means 722 which executes a process of generating a series of plain data message blocks P₁, P₂, . . . , P_(n) 724 by computing the above explained equation,

P _(i) =K ⁻¹ C _(i) K* _(i) +K* _(i) VT

[0302] In this decryption process, Secret key K 723 is used. Secret key K 723 is a session key in form of an n×n binary matrix.

[0303] (12) Conclusion

[0304] Although the invention has been described with reference to specific embodiments, this description is not meant to be construed in a limiting sense. Various modifications of the disclosed embodiment, as well as alternative embodiments of the invention, will become apparent to persons skilled in the art upon reference to the description of the invention. It is therefore contemplated that such modifications can be made without departing from the spirit or scope of the present invention as defined in the appended claims.

[0305] According to the present invention, starting from an analysis and comparison of the main security issues related to SDR and an usual internet downloading, and identified specific characteristics, a novel dedicated cipher for SDR secure downloading based on Boolean Matrices can be provided.

[0306] The encryption algorithm according to this invention does not follow the standard paradigm of a block or stream cipher, it employs a very long secret key, and it is resistant against all known attacks. On the other hand, the developed encryption technique offers low implementation complexity, and suitability for FPGA and DSP frameworks of SDR.

[0307] According to the present invention, a Boolean matrices based encryption and decryption method can be provided, which is resistant against recently developed secret key recovering procedure.

BRIEF DESCRIPTION OF DRAWINGS

[0308]FIG. 1. Table of security comparison data between SDR download and usual Internet download.

[0309]FIG. 2. Flow-chart of FEA-M encryption algorithm.

[0310]FIG. 3. Table of nominal and effective master secret key size.

[0311]FIG. 4. Flow-chart of the improved encryption algorithm in accordance with this invention.

[0312]FIG. 5. Flow-chart of the improved decryption algorithm in accordance with this invention.

[0313]FIG. 6. Block diagram of the configuration for processing data encryption in SDR.

[0314]FIG. 7. Functionality diagram of security check device in the terminal (SDR).

[0315]FIG. 8 Block diagram of a wireless data communication apparatus (SDR).

[0316]FIG. 9 Block diagram for a wireless network in which the present invention's algorithm can be applied.

[0317]FIG. 10 Block diagram for security check devices in server and client system which utilizes the improved FEA-M encryption and decryption algorithm.

DESCRIPTION OF THE REFERENCE NUMBER

[0318]201 Software program

[0319]202 Encryption function

[0320]203 Secret key

[0321]204 Encrypted program file

[0322]451 Encrypted and signed bitfile

[0323]452 Terminal Secret Key

[0324]453 Government Public Key

[0325]501 Transceiver

[0326]502 A/D,D/A Converter

[0327]503 Tamperproof Hardware Package

[0328]504 DSP

[0329]505 CPU

[0330]506 ROM

[0331]507 Memory

[0332]508 I/O Interface

[0333]509 A/D,D/A converter

[0334]601 Server

[0335]611 Base Station

[0336]621, 623, 624, SDR

[0337]650 Tamperproof Hardware Package

[0338]710 Server device

[0339]711 data

[0340]712 enciphering means

[0341]713 secret key K

[0342]720 client device

[0343]721 encrypted data

[0344]722 deciphering means

[0345]723 secret key

[0346]724 plain data

[0347]750 public communication channel 

1. A method for encrypting a data message, comprising the steps of: (A) dividing a data message into a series of blocks P₁, P₂, . . . , P_(m), wherein block number is m; (B) calculating: K^(n) and K^(−n)=(K⁻¹)^(n); and, setting: K₀=K^(n) and K₀*=K^(−n) wherein the parameters are defined as follows; K: Session key in form of an n×n binary matrix K⁻¹: Inverse matrix of K, (C) for each i=1, 2, . . . , m, do the following steps, (C-1) calculating: T=[t_(rs)]=KK_(i-1), (C-2) calculating: y = ⊕_(r = 1)^(n)t_(rr)

(c-3) and calculating K_(i) and K*_(i) according to the following equations: (a) if y=1→K_(i)=T (b) if y=0→K_(i)=KT (c) if y=1→K*_(i)=K⁻¹K*_(i-1) (d) if y=0→K*_(i)=K⁻¹K⁻¹K*_(i-1) (D) generating a series of encrypted data message blocks C₁, C₂, . . . , C_(m); by computing the following equation, C _(i) =K(P _(i) +K* _(i) VT)K _(i), Wherin V is initial n×n binary matrix.
 2. The method according to claim 1, said method further comprising the step of: generating following values K^((e)) and V^((e)) which can be used at the data decryption side for recovering values: K⁻¹ and V, K ^((e)) =K _(M) K ⁻¹ K _(M) V ^((e)) =K _(M) VK _(M).
 3. A method for decrypting an encrypted data message, comprising the steps of: (A) inputting a series of encrypted data message blocks C₁, C₂, . . . , C_(m), wherein block number is m; (B) calculating: K^(n) and K^(−n)=(K⁻¹)^(n); and, setting: K₀=K^(n) and K₀*=K^(−n), wherein the parameters are defined as follows; K: Session key in form of an n×n binary matrix K⁻¹: Inverse matrix of K (C) for each i=1, 2, . . . , m, do the following steps, (C-1) calculating: T=[t_(rs)]=KK_(i-1), (C-2) calculating: y = ⊕_(r = 1)^(n)t_(rr)

(C-3)and calculating K_(i) and K*_(i) according to the following equations: (a) if y=1→K_(i)=T (b) if y=0→K_(i)=KT (c) if y=1→K*_(i) 32 K⁻¹K*_(i-1) (d) if y=0→K*_(i)=K⁻¹K⁻¹K*_(i-1) (D)generating a series of plain data message blocks P₁, P₂, . . . , P_(m); by computing the following equation, P _(i) =K ⁻¹ C _(i) K* _(i) +K* _(i) VT, Wherin V is initial n×n binary matrix.
 4. The method according to claim 3, said method further comprising the step of: generating following values K⁻¹ and V by computing the following equation, K ⁻¹ =K _(M) ⁻¹ K ^((e)) K _(M) ⁻¹; V=K _(M) ⁻¹ V ^((e)) K _(M) ⁻¹. wherein K_(M) is a master secret key in form of n×n binary matrix, and as to K^((e)) and V^((e)), following equations are defined, K ^((e)) =K _(M) K ⁻¹ K _(M) V ^((e)) =K _(M) VK _(M).
 5. A data processing device for encrypting a data message, comprising: (A) a data processing logic for dividing a data message into a series of blocks P₁, P₂, . . . , P_(m), wherein block number is m; (B) a data computing logic for calculating K^(n) and K^(−n)=(K⁻¹)^(n); and setting: K₀=K^(n) and K₀*=K^(−n) wherein the parameters are defined as follows; K: Session key in form of an n×n binary matrix K⁻¹: Inverse matrix of K, (C) a data computing logic for processing the following calculation (c-1) to (c-3) for each i=1, 2, . . . , m, do, (C-1) calculation: T=[t_(rs)]=KK_(i-1), (C-2) calculation: y = ⊕_(r = 1)^(n)t_(rr)

and (c-3) calculation: (a) if y=1→K_(i)=T (b) if y=0→K_(i)=KT (c) if y=1→K*_(i)=K⁻¹K*_(i-1) (d) if y=0→K*_(i)=K⁻¹K⁻¹K*_(i-1) (D) a data computing logic for generating a series of encrypted data message blocks C₁, C₂, . . . , C_(m); by computing the following equation, C _(i) =K(P _(i) +K* _(i) VT)K _(i), Wherin V is initial n×n binary matrix.
 6. The data processing device according to claim 5, said data processing device further comprises: a data computing logic for generating following values K^((e)) and V^((e)) which are used at the data decryption side for recovering values: K⁻¹ and V, K ^((e)) =K _(M) K ⁻¹ K _(M) V ^((e)) =K _(M) VK _(M).
 7. The data processing device according to claim 5, wherein the data processing device is configured in a field programmable gate array.
 8. An data processing device for decrypting an encrypted data message, comprising: (A) a data input means for inputting a series of encrypted data message blocks C₁, C₂, . . . , C_(m), wherein block number is m; (B) a data computing logic for calculating K^(n) and K^(−n)=(K⁻¹)^(n); and, setting: K₀=K^(n) and K₀*=K^(−n), wherein the parameters are defined as follows; K: Session key in form of an n×n binary matrix K⁻¹: Inverse matrix of K (C) a data computing logic for processing the following calculation (c-1) to (c-3) for each i=1, 2, . . . , m, do, (C-1) calculation: T=[t_(rs)]=KK_(i-1), (C-2) calculation: y = ⊕_(r = 1)^(n)t_(rr)

and (c-3) calculation:. (a) if y=1→K_(i)=T (b) if y=0→K_(i)=KT (c) if y=1→K*_(i)=K⁻¹K*_(i-1) (d) if y=0→K*_(i)=K⁻¹K⁻¹K*_(i-1) (D) a data computing logic for generating a series of plain data message blocks P₁, P₂, . . . , P_(m); by computing the following equation, P _(i) =K ⁻¹ C _(i) K* _(i) +K* _(i) VT, Wherin V is initial n×n binary matrix.
 9. The data processing device according to claim 8, said data processing device further comprises: a data computing logic for generating following values K⁻¹ and V by computing the following equation, K ⁻¹ =K _(M) ⁻¹ K ^((e)) K _(M) ⁻¹; V=K _(M) ⁻¹ V ^((e)) K _(M) ⁻¹. wherein K_(M) is a master secret key in form of n×n binary matrix, and as to K^((e)) and V^((e)) following equations are defined, K ^((e)) =K _(M) K ⁻¹ K _(M) V ^((e)) =K _(M) VK _(M).
 10. The data processing device according to claim 8, wherein the data processing device is configured in a field programmable gate array. 